package 关于异常;

import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class 关于异常 {
	
	/*
	 * 处理运行异常
	 * 1.自己处理异常，代码继续运行
	 * 2.自己没有处理异常，异常交给JVM，JVM会打印这个异常(报错)
	 * 
	 * 手动处理
	 * try{ // 执行这段代码
	   		没错误就继续执行，
	   		执行到错误代码，马上结束try，跳到catch
	 * 	} catch (Exception e) {
			有错误，catch获取这个错误，传入(Exception e)是所有异常的父类，然后执行catch方法体
		}
	 * 
	 * 处理多个错误
	  	try{ // 执行这段代码
	   		*** 根据不同的错误，执行不同的catch ***
	  	} catch (Exception e) {  // Exception e 必须放到最上面
			System.out.println("其他错误");
		} catch (除数不能为0异常 e) {
	  		System.out.println("除数不能为0");
		} catch (数组角标越界异常 e) {
			System.out.println("数组角标越界");
		}
	* 获取异常信息
	1.	catch(Exception e){  // e.getMessage() 获取异常信息
			System.out.println(e.getMessage());
		} // 获取异常信息
		
	2.	catch(Exception e){  ///直接打印
			System.out.println(e.toString());
			System.out.println(e);
		} //直接打印
		
*** 3.	catch(Exception e){  // e.printStackTrace() 打印 获取异常 全部的详细信息  ***
			e.printStackTrace();
		} //直接打印
	*
	*
	*
	* 抛出异常  throw 跑出一个错误提示     (运行时)
	 */

	static int money = 0;
	public static void main(String[] args) {
	
		// 1.手动处理异常
//		try { 
//			int a = 10 / 10;
//			System.out.println(a);
//		} catch (Exception e) {
//			System.out.println("除数不能为0");
//		}
//		System.out.println("-----end-----");
		
		// 2.抛出异常
		int a = 20;
		if(a == 10) {
			System.out.println("a合法");
		}else {
			throw new 	RuntimeException("a的赋值非法");
		}
		
	}
	
}
